Generation and maintenance of synthetic context events from synthetic context objects

ABSTRACT

A method, computer program product and system for generating and maintaining synthetic context events. The steps include searching a data structure of synthetic context-based objects and associated data for a pattern of context exhibited at a first specified frequency within a first specified time period; combining the synthetic context-based objects and associated data exhibiting the pattern of context exhibited at the first specified frequency within the first specified time period into a synthetic context event; and optimizing and maintaining the synthetic context event by searching the data structure for additional synthetic context-based objects and associated data exhibiting a same pattern of context at a second specified time period different than the first specified time period and adding the additional synthetic context-based objects and associated data to the synthetic context event.

REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of parent patent applicationSer. No. 13/906,658, filed May 31, 2013, entitled “GENERATION ANDMAINTENANCE OF SYNTHETIC EVENTS FROM SYNTHETIC CONTEXT OBJECTS”. Theaforementioned application is hereby incorporated herein by reference.

BACKGROUND

The present invention relates to synthetic events, and more specificallyto the generation and maintenance of synthetic events from syntheticcontext objects.

Computer processing of large amounts of data is often carried outlinearly by computer processors, with the computer processing andgrouping data that shares granularities and cardinalities. Context whichmay be relevant to the data, or data which does not share granularity orcardinality with other data, is not taken into account during theprocessing of data by the computer, neglecting possible relationshipsbetween seemingly unrelated data.

SUMMARY

According to one embodiment of the present invention, a method ofgenerating and maintaining synthetic context events from a datastructure. The data structure comprising: a context object databasehaving a plurality of context objects; a non-contextual data objectdatabase having at least one non-contextual data object; a syntheticcontext-based object database having a plurality of syntheticcontext-based objects associated with the plurality of context objects,the non-contextual data objects being linked to the syntheticcontext-based objects; and a synthetic context event database comprisingsynthetic context events linked to the synthetic context-based objects.The method comprising the steps of: a computer searching the syntheticcontext-based objects and associated data of context objects for apattern of context exhibited at a first specified frequency within afirst specified time period; the computer combining the syntheticcontext-based objects and associated data of context objects exhibitingthe pattern of context exhibited at the first specified frequency withinthe first specified time period into a synthetic context event; and thecomputer optimizing and maintaining the synthetic context event bysearching the data structure for additional synthetic context-basedobjects and associated data exhibiting a same pattern of context at asecond specified time period different than the first specified timeperiod and adding the additional synthetic context-based objects andassociated data to the synthetic context event.

According to another embodiment of the present invention, a computerprogram product for generating and maintaining synthetic context eventsfrom a data structure. The data structure comprising: a context objectdatabase having a plurality of context objects; a non-contextual dataobject database having at least one non-contextual data object; asynthetic context-based object database having a plurality of syntheticcontext-based objects associated with the plurality of context objects,the non-contextual data objects being linked to the syntheticcontext-based objects; and a synthetic context event database comprisingsynthetic context events linked to the synthetic context-based objects.The computer program product further comprising a computer coupled tothe data structure, the computer comprising at least one processor, oneor more memories, one or more computer readable storage media, thecomputer program product comprising a computer readable storage mediumhaving program instructions embodied therewith, the program instructionsexecutable by the computer to perform a method comprising: searching, bythe computer, the synthetic context-based objects and associated data ofcontext objects for a pattern of context exhibited at a first specifiedfrequency within a first specified time period; combining, by thecomputer, the synthetic context-based objects and associated data ofcontext objects exhibiting the pattern of context exhibited at the firstspecified frequency within the first specified time period into asynthetic context event; and optimizing and maintaining, by thecomputer, the synthetic context event by searching the data structurefor additional synthetic context-based objects and associated dataexhibiting a same pattern of context at a second specified time perioddifferent than the first specified time period and adding the additionalsynthetic context-based objects and associated data to the syntheticcontext event.

According to another embodiment of the present invention, a system forgenerating and maintaining synthetic context events from a datastructure comprising: a context object database having a plurality ofcontext objects; a non-contextual data object database having at leastone non-contextual data object; a synthetic context-based objectdatabase having a plurality of synthetic context-based objectsassociated with the plurality of context objects, the non-contextualdata objects being linked to the synthetic context-based objects; and asynthetic context event database comprising synthetic context eventslinked to the synthetic context-based objects. The computer systemcomprising a computer coupled to a data structure, the computercomprising at least one processor, one or more memories, one or morecomputer readable storage media having program instructions executableby the computer to perform the program instructions comprising:searching, by the computer, the synthetic context-based objects andassociated data of context objects for a pattern of context exhibited ata first specified frequency within a first specified time period;combining, by the computer, the synthetic context-based objects andassociated data of context objects exhibiting the pattern of contextexhibited at the first specified frequency within the first specifiedtime period into a synthetic context event; and optimizing andmaintaining, by the computer, the synthetic context event by searchingthe data structure for additional synthetic context-based objects andassociated data exhibiting a same pattern of context at a secondspecified time period different than the first specified time period andadding the additional synthetic context-based objects and associateddata to the synthetic context event.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 depicts an exemplary diagram of a possible data processingenvironment in which illustrative embodiments may be implemented.

FIG. 2 shows a process for generating one or more syntheticcontext-based objects.

FIG. 3 depicts an exemplary case in which synthetic context-basedobjects are defined for the non-contextual data object datum “Rock”.

FIG. 4 illustrates an exemplary case in which synthetic context-basedobjects are defined for the non-contextual data object data “104-106”.

FIG. 5 depicts an exemplary case in which synthetic context-basedobjects are defined for the non-contextual data object datum “Statin”.

FIG. 6 shows a method for the generation and maintenance of syntheticevents from synthetic context-based objects.

FIG. 7 shows a method of optimizing and maintaining the syntheticcontext event.

FIG. 8 shows illustrates internal and external components of a clientcomputer and a server computer in which illustrative embodiments may beimplemented.

FIG. 9 depicts an exemplary case in which synthetic context-basedobjects are defined for the non-contextual data object datum “Statin”and includes synthetic time events.

DETAILED DESCRIPTION

The illustrative embodiments of the present invention recognize that asynthetic context event may be defined as a clustering of informationbased on preset parameters. The synthetic context event may be an“event” that represents a probability of a future fact or happening, orthat represents a probability that a potential past fact or happeninghas occurred, or that represents a probability that a potential currentfact or happening is occurring, with the mathematical formulation of asynthetic context event represented by the operation S(p1)==>F(p2),where S is the set of input facts with probability p1 that potentiatesfuture event F with probability p2. Note that future event F in thisoperation can represent represents a probability that a potential pastfact or happening has occurred, or that represents a probability that apotential current fact or happening is occurring, because theseprobabilities did not exist before a request to calculate them wasformulated. Information or data from intersecting data constructs may bea result of a synthetic context event.

Additionally, a synthetic context event can be considered a recordable,definable, addressable data interrelationship in solution space, whereinthe interrelationship is represented with a surrogate key, and whereinthe synthetic context event is able to interact with other events orfacts for purposes of computer-assisted analysis. The events or factsmay be spread across granularities and cardinalities. The syntheticcontext events can combine heterogeneous data which includes contextinto a meaningful group or event to allow non-linear reasoning acrossgranularities and cardinalities by a computer processor to change theseemingly unrelated data into binary data that the computer can easilyprocess.

Synthetic context events are composed of physically or logicallyobservable events, not suppositions about mental state, unless they canbe supported by or characterized as observable fact or numbers.Synthetic context events can be compared to generate additionalsynthetic context events. The synthetic context events may also includetime or be based on a specific time period and frequency of occurring.

FIG. 1 is an exemplary diagram of a possible data processing environmentprovided in which illustrative embodiments may be implemented. It shouldbe appreciated that FIG. 1 is only exemplary and is not intended toassert or imply any limitation with regard to the environments in whichdifferent embodiments may be implemented. Many modifications to thedepicted environments may be made.

Referring to FIG. 1, network data processing system 51 is a network ofcomputers in which illustrative embodiments may be implemented. Networkdata processing system 51 contains network 50, which is the medium usedto provide communication links between various devices and computersconnected together within network data processing system 51. Network 50may include connections, such as wire, wireless communication links, orfiber optic cables.

In the depicted example, client computer 52, repository 53, and servercomputer 54 connect to network 50. In other exemplary embodiments,network data processing system 51 may include additional clientcomputers, storage devices, server computers, and other devices notshown. Client computer 52 includes a set of internal components 800 aand a set of external components 900 a, further illustrated in FIG. 8.Client computer 52 may be, for example, a mobile device, a cell phone, apersonal digital assistant, a netbook, a laptop computer, a tabletcomputer, a desktop computer, or any other type of computing device.

Client computer 52 may contain an interface 55. Through the interface55, specified time periods, frequency of context patterns, syntheticcontext-based objects, and synthetic context events or synthetic eventsmay be viewed by the user. The interface 55 may accept commands and dataentry from a user, for example specified time periods in which to searchfor a repeating pattern of context or frequency of a context patterns.The interface 55 can be, for example, a command line interface, agraphical user interface (GUI), or a web user interface (WUI) throughwhich a user can access a synthetic context event program 66 on theclient computer 52.

In the depicted example, server computer 54 provides information, suchas boot files, operating system images, and applications to clientcomputer 52. Server computer 54 includes a set of internal components800 b and a set of external components 900 b illustrated in FIG. 8 andmay also include the components shown in FIG. 8.

Program code, synthetic context-based objects, synthetic context events,and programs such as a synthetic context event program 66 may be storedon at least one of one or more computer-readable tangible storagedevices 830 shown in FIG. 8, on at least one of one or more portablecomputer-readable tangible storage devices 936 as shown in FIG. 8, onrepository 53 connected to network 50, or downloaded to a dataprocessing system or other device for use.

For example, program code, synthetic context-based objects, syntheticcontext events and programs such as a synthetic context event program 66may be stored on at least one of one or more tangible storage devices830 on server computer 54 and downloaded to client computer 52 overnetwork 50 for use on client computer 52. Alternatively, server computer54 can be a web server, and the program code, synthetic context-basedobjects, synthetic context events, and programs such as a syntheticcontext event program 66 may be stored on at least one of the one ormore tangible storage devices 830 on server computer 54 and accessed onclient computer 52. Synthetic context event program 66 can be accessedon client computer 52 through interface 55. In other exemplaryembodiments, the program code, synthetic context-based objects,synthetic context events, and synthetic context event program 66 may bestored on at least one of one or more computer-readable tangible storagedevices 830 on client computer 52 or distributed between two or moreservers.

With reference now to FIG. 2, a process for generating one or moresynthetic context based objects in a system 200 is presented. Note thatsystem 200 is a processing and storage logic system found in computerand/or data storage system 51 shown in FIG. 1, which process, support,and/or contain the databases, pointers, and objects depicted in FIG. 2.

Within processing and storage logic system 200 is a synthetic contextevents database 203 which is comprised of synthetic context events 205a-205 n (thus indicating “n” objects, where “n” is an integer) indifferent times t₁-t_(n). Each of the synthetic events 205 a-205 n iscomprised of multiple synthetic context-based objects 204 a-204 n (thusindicating an “n” quantity of objects, where “n” is an integer) storedin a synthetic context-based object database 202. Each of the syntheticcontext-based objects 204 a-204 n is defined by at least onenon-contextual data object and at least one context object. That is, atleast one non-contextual data object is associated with at least onecontext object to define one or more of the synthetic context-basedobjects 204 a-204 n. The non-contextual data object database 206contains non-contextual data objects 208 a-208 n which ambiguouslyrelates to multiple subject-matters, and the context object provides acontext that identifies a specific subject-matter, from the multiplesubject-matters, of the non-contextual data object. The syntheticcontext events 205 a-205 n combine heterogeneous data which includescontext into a meaningful group or event to allow non-linear reasoningacross granularities and cardinalities by a computer processor to changethe seemingly unrelated data into binary data that the computer caneasily process. The synthetic context event 205 a-205 n includes apattern of repeating context or frequency of context within at least onetime period.

Note that the non-contextual data objects contain data that has nomeaning in and of itself. That is, the data in the context objects arenot merely attributes or descriptors of the data/objects described bythe non-contextual data objects. Rather, the context objects provideadditional information about the non-contextual data objects in order togive these non-contextual data objects meaning. Thus, the contextobjects do not merely describe something, but rather they define whatsomething is. Without the context objects, the non-contextual dataobjects contain data that is meaningless; with the context objects, thenon-contextual data objects become meaningful.

For example, assume that a non-contextual data object database 206includes multiple non-contextual data objects 208 a-208 n. However, datawithin each of these non-contextual data objects 208 a-208 n by itselfis ambiguous, since it has no context. That is, the data within each ofthe non-contextual data objects 208 a-208 n is data that, standingalone, has no meaning, and thus is ambiguous with regards to itssubject-matter. In order to give the data within each of thenon-contextual data objects 208 a-208 n meaning, they are given context,which is provided by data contained within one or more of the contextobjects 210 a-210 n stored within a context object database 212. Forexample, if a pointer 214 a points the non-contextual data object 208 ato the synthetic context-based object 204 a, while a pointer 216 apoints the context object 210 a to the synthetic context-based object204 a, thus associating the non-contextual data object 208 a and thecontext object 210 a with the synthetic context-based object 204 a(e.g., storing or otherwise associating the data within thenon-contextual data object 208 a and the context object 210 a in thesynthetic context-based object 204 a), the data within thenon-contextual data object 208 a now has been given unambiguous meaningby the data within the context object 210 a. This contextual meaning isthus stored within (or otherwise associated with) the syntheticcontext-based object 204 a.

Similarly, if a pointer 214 b associates data within the non-contextualdata object 208 b with the synthetic context-based object 204 b, whilethe pointer 216 c associates data within the context object 210 n withthe synthetic context-based object 204 b, then the data within thenon-contextual data object 208 b is now given meaning by the data in thecontext object 210 n. This contextual meaning is thus stored within (orotherwise associated with) the synthetic context based object 204 b.

Note that more than one context object can give meaning to a particularnon-contextual data object. For example, both context object 210 a andcontext object 210 b can point to the synthetic context-based object 204a, thus providing compound context meaning to the non-contextual dataobject 208 a shown in FIG. 2. This compound context meaning providesvarious layers of context to the data in the non-contextual data object208 a.

Note also that while the pointers 214 a-214 b and 216 a-216 c arelogically shown pointing toward one or more of the syntheticcontext-based objects 204 a-204 n, in one embodiment the syntheticcontext-based objects 204 a-204 n actually point to the non-contextualdata objects 208 a-208 n and the context objects 210 a-210 n. That is,in one embodiment the synthetic context based objects 204 a-204 n locatethe non-contextual data objects 208 a-208 n and the context objects 210a-210 n through the use of the pointers 214 a-214 b and 216 a-216 c. Apointer 218 a associates synthetic context-based object 204 a andpointer 218 b associates other synthetic context-based objects 204 bwith a synthetic context event at time one 205 a.

FIGS. 3-5 and 9 show examples in which synthetic context-based objectsare defined for the non-contextual data objects. While not shown in allof the examples, synthetic context events may be generated based on arepeating context pattern present in the synthetic context-based objectdatabase or context object database. Synthetic context events combine atleast seemingly unrelated synthetic context based objects and associatedcontext objects. In addition, synthetic context events combine at leastseemingly unrelated non-contextual data objects and associated syntheticcontext based objects and associated context objects.

Consider now an exemplary case depicted in FIG. 3, in which syntheticcontext-based objects are defined for the non-contextual data objectdata “rock”. Standing alone, without any context, the word “rock” ismeaningless, since it is ambiguous and does not provide a reference toany particular subject-matter. That is, “rock” may refer to a stone, orit may be slang for a gemstone such as a diamond, or it may refer to agenre of music, or it may refer to physical oscillation, etc. Thus, eachof these references are within the context of a different subject matter(e.g., geology, entertainment, physics, etc.).

In the example shown in FIG. 3, then, data (i.e., the word “rock”) fromthe non-contextual data object 308 a is associated with (e.g., stored inor associated by a look-up table, etc.) a synthetic context-based object304 a, which is devoted to the subject-matter “geology”. The data/word“rock” from non-contextual data object 308 a is also associated with asynthetic context-based object 304 b, which is devoted to thesubject-matter “entertainment”. In order to give contextual meaning tothe word “rock” (i.e., define the term “rock”) in the context of“geology”, context object 310 a, which contains the context datum“mineral”, is associated with (e.g., stored in or associated by alook-up table, etc.) the synthetic context-based object 304 a. In oneembodiment, more than one context datum can be associated with a singlesynthetic context based object. Thus, in the example shown in FIG. 3,the context object 310 b, which contains the datum “gemstone”, is alsoassociated with the synthetic context-based object 304 a.

Associated with the synthetic context-based object 304 b is a contextobject 310 n, which provides the context/datum of “music” to the term“rock” provided by the non-contextual data object 308 a. Thus, thesynthetic context-based object 304 a defines “rock” as that which isrelated to the subject-matter “geology”, including minerals and/orgemstones, while synthetic context-based object 304 b defines “rock” asthat which is related to the subject-matter “entertainment”, includingmusic.

In one embodiment, the data within a non-contextual data object is evenmore meaningless if it is merely a combination of numbers and/orletters. For example, consider the data “104-106” contained within anon-contextual data object 408 a depicted in FIG. 4. Standing alone,without any context, these numbers are meaningless, identify noparticular subject-matter, and thus are completely ambiguous. That is,“104-106” may relate to subject-matter such as a medical condition, aphysics value, a person's age, a quantity of currency, a person'sidentification number, etc. That is, the data “104-106” is sovague/meaningless that the data does not even identify the units ofmeasurement for the data, much less the context of these units.

In the example shown in FIG. 4, then, data (i.e., the term/values“104-106”) from the non-contextual data object 408 a is associated with(e.g., stored in or associated by a look-up table, etc.) a syntheticcontext-based object 404 a, which is devoted to the subject-matter“hypertension”. The term/values “104-106” from non-contextual dataobject 408 a is also associated with a synthetic context-based object404 b, which is devoted to the subject-matter “human fever” and asynthetic context-based object 404 n, which is devoted to thesubject-matter “deep sea diving”. In order to give contextual meaning tothe term/values “104-106” (i.e., define the term/values “104-106”) inthe context of “hypertension”, context object 410 x, which contains thecontext data “millimeters of mercury” and “diastolic blood pressure” isassociated with (e.g., stored in or associated by a look-up table, etc.)the synthetic context-based object 404 a. Thus, multiple context datacan provide not only the scale/units (millimeters of mercury) context ofthe values “104-106”, but the data can also provide the context data“diastolic blood pressure” needed to identify the subject-matter(hypertension) of the synthetic context-based object 404 a.

Associated with the synthetic context-based object 404 b is a contextobject 410 b, which provides the context data of “degrees on theFahrenheit scale” and “human” to the term/values “104-106” provided bythe non-contextual data object 408 a. Thus, the synthetic context-basedobject 404 b now defines term/values “104-106” as that which is relatedto the subject matter of “human fever” Similarly, associated with thesynthetic context-based object 404 n is a context object 410 n, whichprovides the context data of “depth” to the term/values “104-106”provided by the non-contextual data object 408 a. In this case, thegenerator of the synthetic context-based object database 202 determinesthat high numbers of feet (depth) are used to define deep oceanpressures. Thus, the synthetic context-based object 404 n now definesterm/values “104-106” as that which is related to the subject matter of“deep sea diving”.

A synthetic context event 405 d may include synthetic context-basedobject 404 a, which is devoted to the subject-matter “hypertension” andsynthetic context-based object 404 b, which is devoted to the subjectmatter “human fever” and associated context objects 410 a-410 n, whichfurther provide context relative to the synthetic context-based objects404 a, 404 b. The repeating pattern of context for the synthetic eventcould be the number of times an adult had had a fever of 104-106° F.when they were a child between the ages 0-4 years, and also the numberof times the adult has had a diastolic blood pressure of 104-106 mmHg inthe last ten years.

Another synthetic context event 405 e may include syntheticcontext-based object 404 b, which is devoted to the subject-matter“hypertension” and synthetic context-based object 404 n, which isdevoted to the subject matter “deep sea diving” and associated contextobjects 410 b-410 n, which further provide context relative to thesynthetic context-based objects 404 b, 404 n. The repeating pattern ofcontext for the synthetic event could be the number of times a humandived to a specific depth of water, 104-106 feet, and the number oftimes the human has had a diastolic blood pressure level of 104-106mmHg, over a specific time period, for example three years. Thesynthetic context event is relating seemingly unrelated context togetherregardless of the cardinality or granularity of the data or context.

In one embodiment, the non-contextual data object may provide enoughself-context to identify what the datum is, but not what it means and/oris used for. For example, consider the datum “statin” contained withinthe non-contextual data object 508 a shown in FIG. 5. In the exampleshown in FIG. 5, datum (i.e., the term “statin”) from the non-contextualdata object 508 a is associated with (e.g., stored in or associated by alook-up table, etc.) a synthetic context-based object 504 a, which isdevoted to the subject-matter “cardiology”. The term “statin” fromnon-contextual data object 508 a is also associated with a syntheticcontext-based object 504 b, which is devoted to the subject-matter“nutrition” and a synthetic context-based object 504 a, which is devotedto the subject-matter “tissue inflammation”. In order to give contextualmeaning to the term “statin” (i.e., define the term “statin”) in thecontext of “cardiology”, context object 510 a, which contains thecontext data “cholesterol reducer” is associated with (e.g., stored inor associated by a look-up table, etc.) the synthetic context-basedobject 504 a. Thus, the datum “cholesterol reducer” from context object510 a provides the context to understand that “statin” is used in thecontext of the subject-matter “cardiology”.

Referring to FIG. 5, associated with the synthetic context-based object504 b is a context object 510 b, which provides the context/datum of“antioxidant” to the term “statin” provided by the non-contextual dataobject 508 a. That is, a statin has properties both as a cholesterolreducer as well as an antioxidant. Thus, a statin can be considered inthe context of reducing cholesterol (i.e., as described by thesubject-matter of synthetic context-based object 504 a), or it mayconsidered in the context of being an antioxidant (i.e., as related tothe subject-matter of synthetic context based object 504 b). Similarly,a statin can also be an anti-inflammatory medicine. Thus, associatedwith the synthetic context-based object 504 n is the context object 510n, which provides the context data of “anti-inflammatory medication” tothe term “statin” provided by the non-contextual data object 508 a. Thiscombination identifies the subject-matter of the synthetic context-basedobject 504 n as “tissue inflammation”.

In another example, as shown in FIG. 9, the non-contextual data object608 a of “statin” is further defined by synthetic context-based objects604 a-604 n, which are each associated with context objects 610 a-610 n.In this case, the non-contextual data object 608 a of “statin” isprovided context or further defined by possible factors that affect theefficacy of the statin for a user. The efficacy of the statin isprovided with context by synthetic context-based objects and may be“exercise” 604 a, “medication dosage” 604 b, “LDL” 604 c, “nutrition”604 d, “lab results” 604 n. For each of the synthetic context-basedobjects are context objects 610 a-610 n. For example, the syntheticcontext-based object of “exercise” 604 a may be linked to context object“2900 steps/day” 610 e or “8500 steps/day” 610 f; the syntheticcontext-based object of “medication dosage” 604 b may be linked tocontext object “08:00” 610 a and “23:00” 610 b in hours and minutescorresponding to the time of day in which the statin is ingested; thesynthetic context-based object of low-density lipoprotein cholesterol inthe blood “LDL” 604 c may be linked to context object “100 mg/dL” 610 cor “152 mg/dL” 610 d; the synthetic context-based object of “nutrition”604 d may be linked to context object “1900 calories/day” 610 g or “2900calories/day” 610 h; the synthetic context-based object of “lab results”604 n may be linked to context object “25 ng/dL” 610 h or “65 ng/dL” 610n.

A synthetic context event 605 d of “statin first quarter 2014” couldrepresent a time of day a user ingests the statin, a level of change ofthe user's LDL within a 3 month time and the amount of exercise of theuser, relating seemingly unrelated context regarding a user relative tohow it may produce a pattern that affects the efficacy of a statin.Another example of a synthetic context event 605 n could be “statin2014” which represents level change of a user's LDL level, averagenumber of calories per day consumed and amount of ferritin over a twelvemonth period during the year 2014.

Once the synthetic context-based objects are defined, they can be linkedto data stores. A data store is defined as a data repository of a set ofintegrated data, such as text files, video files, webpages, etc.Multiple data stores may be organized into a data structure.

That is, in one embodiment, the data structure is a database of textdocuments (represented by one or more of the data stores), such asjournal articles, webpage articles, electronically-storedbusiness/medical/operational notes, etc.

In one embodiment, the data structure is a database of text, audio,video, multimedia, etc. files (represented by one or more of the datastores) that are stored in a hierarchical manner, such as in a treediagram, a lightweight directory access protocol (LDAP) folder, etc.

In one embodiment, the data structure is a relational database, which isa collection of data items organized through a set of formally describedtables. A table is made up of one or more rows, known as “tuples”. Eachof the tuples (represented by one or more of the data stores) sharecommon attributes, which in the table are described by column headings.Each tuple also includes a key, which may be a primary key or a foreignkey. A primary key is an identifier (e.g., a letter, number, symbol,etc.) that is stored in a first data cell of a local tuple. A foreignkey is typically identical to the primary key, except that it is storedin a first data cell of a remote tuple, thus allowing the local tuple tobe logically linked to the foreign tuple.

In one embodiment, the data structure is an object oriented database,which stores objects (represented by one or more of the data stores). Asunderstood by those skilled in the art of computer software, an objectcontains both attributes, which are data (i.e., integers, strings, realnumbers, references to another object, etc.), as well as methods, whichare similar to procedures/functions, and which define the behavior ofthe object. Thus, the object oriented database contains both executablecode and data

In one embodiment, the data structure is a spreadsheet, which is made upof rows and columns of cells (represented by one or more of the datastores). Each cell (represented by one or more of the data stores)contains numeric or text data, or a formula to calculate a value basedon the content of one or more of the other cells in the spreadsheet.

In one embodiment, the data structure is a collection of universalresource locators (URLs) for identifying a webpage, in which each URL(or a collection of URLs) is represented by one or more of the datastores.

These described types of data stores are exemplary, and are not to beconstrued as limiting what types of data stores are found within datastructure.

FIGS. 6-7 show flowcharts of a method for the generation and maintenanceof synthetic events from synthetic context-based objects.

In a first step, a data structure is searched for data exhibiting arepeating pattern of context or pattern expressed at a set frequencywithin a specified time period (step 602), for example by the syntheticcontext event program 66. The results are preferably stored in arepository or database, for example repository 53 of FIG. 1 or syntheticcontext-based object database 202 of FIG. 2. The specified time periodand the frequency of how often a pattern of context may need to bepresent or exhibit in order to satisfy the search may be set and alteredby a user. The specified time period and the frequency in which thepattern of context may need to exhibit is preferably received prior tostep 602.

The data, which is preferably synthetic context-based objects and anyassociated data, that matches the search of step 602 are combined into asynthetic context event and the synthetic context events are stored in arepository or database (step 604), for example repository 53 of FIG. 1or synthetic event database 203 of FIG. 2. A synthetic context event isat a non-contextual data object and at least one synthetic context-basedobject and associated data or information from clustering of informationbased on preset parameters, which in this case are the presence of apattern of context repeating a specific number of times or occurring ata specified frequency within a specific time period.

The synthetic context events are optimized or maintained (step 606) andthe method ends. Referring to FIG. 7, step 606 is shown in greaterdetail. The data structure is searched for additional data exhibitingthe searched pattern of context at a determined frequency outside of thespecified time period originally searched or at another specified timeperiod and the results are stored in a repository or database (step610), for example by the synthetic context event program 66. The datastructure may be a database of text documents, database of text, audio,video, etc. . . . , a relational database, an object oriented database,a spreadsheet, a collection of URLs, or other data structure. The dataoutside of the specified time period that has the pattern at a specificfrequency or number of repeats is added to the synthetic context event,for example by the synthetic context event 66, and the synthetic contextevent is stored in a repository or database (step 612).

It should be noted that the specified time period of step 602 ispreferably different than the specified time period of step 610.Furthermore, the frequency of the pattern of context exhibited withinthe time period may be the same in both steps 602 and 610 or may differ.The frequency may be specified as being continuous or discontinuouswithin the specified time period.

Referring back to FIG. 9 as an example, the synthetic context-basedobject database 202 and context object database 212 is searched for apattern of context exhibited at a specified frequency within a specifiedtime period. In the context-based object database 212, numerous dataassociated with thousands of patients is stored. For example, time inwhich the patient takes the statin in hours and minutes 610 a, 610 b;dosage of ferritin based on the patient's bloodwork in nanograms permilliliter 610 i, 610 n; the patient's LDL level as monitored everymonth in miligrams per deciliter 610 c, 610 d; and the amount ofexercise the patient does per day in steps 610 e, 610 f; and caloriesconsumed each day 610 g, 610 h. The data is grouped into syntheticcontext-based objects 604 a-604 n, such as nutrition, lab results, etc.. . . as factors which may be linked to statins (non-contextual dataobject).

A researcher or doctor may specify that they want to compile a syntheticcontext event in which a pattern of context associated with time of dayin which the statin is taken and a level of change (decrease) of thepatient's LDL as monitored has occurred in a three month time frame aswell as how many steps were taken in the three month time frame hasaffected the efficacy of the statin. Therefore, in this example, thefirst specified time period would be three months.

Multiple synthetic context based objects which meet the criteria andtheir associated context objects including data exhibiting the patternof context at the specified frequency within the specified time periodare combined into a synthetic context event.

The synthetic event created 605 d, for example statin first quarter2014, would include exercise distance, dosage time, LDL level andassociated data in specific time frame. The synthetic context eventcreates a data object that can treated as a binary data object, eventhough the data which comprises the event is heterogeneous, based ondifferent context, and is meaningless if not grouped together.

The synthetic event may be updated as additional data becomes available.The pattern or range of time for a pattern of context to be present maybe altered. For example, the second specified time period may be adifferent three month period, for example third quartile 2014 with thesame context. The synthetic context events of first quartile 2014 andthird quartile 2014 could them be compared since the data can be treatedas binary.

In another example, a second specified time period of twelve months withthe same pattern of context, for example time of day in which the statinis taken and a level of change (decrease) of the patient's LDL asmonitored has occurred in a three month time frames as well as how manysteps were taken in the three month time frames could be updated torepresent a twelve month time period.

Alternatively, the frequency of the pattern of context can also bealtered. For example, the level of change or decrease of a patient's LDLmay be for a one year time span instead of three months. Some patientsmay not have had a decrease of LDL within three months of taking astatin, but instead saw a decrease one year from taking the statin.

FIG. 8 illustrates internal and external components of client computer52 and server computer 54 in which illustrative embodiments may beimplemented. In FIG. 8, client computer 52 and server computer 54include respective sets of internal components 800 a, 800 b, andexternal components 900 a, 900 b. Each of the sets of internalcomponents 800 a, 800 b includes one or more processors 820, one or morecomputer-readable RAMs 822 and one or more computer-readable ROMs 824 onone or more buses 826, and one or more operating systems 828 and one ormore computer-readable tangible storage devices 830. The one or moreoperating systems 828, a surprisal context filter program 66 are storedon one or more of the computer-readable tangible storage devices 830 forexecution by one or more of the processors 820 via one or more of theRAMs 822 (which typically include cache memory). In the embodimentillustrated in FIG. 8, each of the computer-readable tangible storagedevices 830 is a magnetic disk storage device of an internal hard drive.Alternatively, each of the computer-readable tangible storage devices830 is a semiconductor storage device such as ROM 824, EPROM, flashmemory or any other computer-readable tangible storage device that canstore a computer program and digital information.

Each set of internal components 800 a, 800 b also includes a R/W driveor interface 832 to read from and write to one or more portablecomputer-readable tangible storage devices 936 such as a CD-ROM, DVD,memory stick, magnetic tape, magnetic disk, optical disk orsemiconductor storage device. A surprisal context filter program 66 canbe stored on one or more of the portable computer-readable tangiblestorage devices 936, read via R/W drive or interface 832 and loaded intohard drive 830.

Each set of internal components 800 a, 800 b also includes a networkadapter or interface 836 such as a TCP/IP adapter card. A syntheticcontext event program 66 can be downloaded to client computer 52 andserver computer 54 from an external computer via a network (for example,the Internet, a local area network or other, wide area network) andnetwork adapter or interface 836. From the network adapter or interface836, a synthetic context event program 66 is loaded into hard drive 830.The network may comprise copper wires, optical fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers.

Each of the sets of external components 900 a, 900 b includes a computerdisplay monitor 920, a keyboard 930, and a computer mouse 934. Each ofthe sets of internal components 800 a, 800 b also includes devicedrivers 840 to interface to computer display monitor 920, keyboard 930and computer mouse 934. The device drivers 840, R/W drive or interface832 and network adapter or interface 836 comprise hardware and software(stored in storage device 830 and/or ROM 824).

A synthetic context event program 66 can be written in variousprogramming languages including low-level, high-level, object-orientedor non object-oriented languages. Alternatively, the functions of asynthetic context event program 66 can be implemented in whole or inpart by computer circuits and other hardware (not shown).

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

Having thus described the invention of the present application in detailand by reference to embodiments thereof, it will be apparent thatmodifications and variations are possible without departing from thescope of the invention defined in the appended claims.

What is claimed is:
 1. A method of generating and maintaining syntheticcontext events from a data structure comprising: a context objectdatabase having a plurality of context objects; a non-contextual dataobject database having at least one non-contextual data object; asynthetic context-based object database having a plurality of syntheticcontext-based objects associated with the plurality of context objects,the non-contextual data objects being linked to the syntheticcontext-based objects; and a synthetic context event database comprisingsynthetic context events linked to the synthetic context-based objects;the method comprising the steps of: a computer searching the syntheticcontext-based objects and associated data of context objects for apattern of context exhibited at a first specified frequency within afirst specified time period; the computer combining the syntheticcontext-based objects and associated data of context objects exhibitingthe pattern of context exhibited at the first specified frequency withinthe first specified time period into a synthetic context event; and thecomputer optimizing and maintaining the synthetic context event bysearching the data structure for additional synthetic context-basedobjects and associated data exhibiting a same pattern of context at asecond specified time period different than the first specified timeperiod and adding the additional synthetic context-based objects andassociated data to the synthetic context event.
 2. The method of claim1, wherein the step of the computer optimizing and maintaining thesynthetic context event by searching the data structure for additionalsynthetic context-based objects and associated data exhibiting the samepattern of context at the second specified time period further comprisessearching for the same pattern of context exhibited at the firstspecified frequency.
 3. The method of claim 1, wherein the step of thecomputer optimizing and maintaining the synthetic context event bysearching the data structure for additional synthetic context-basedobjects and associated data exhibiting the same pattern of context atthe second specified time period further comprises searching for thesame pattern of context exhibited at a second specified frequency,different than the first specified frequency.
 4. The method of claim 3,wherein the second specified frequency is continuous.
 5. The method ofclaim 3, wherein the second specified frequency is discontinuous.
 6. Themethod of claim 1, wherein the first specified frequency is continuous.7. The method of claim 1, wherein the first specified frequency isdiscontinuous.
 8. The method of claim 1, wherein prior to the step ofthe computer searching a data structure of synthetic context-basedobjects and associated data for a pattern of context exhibited at afirst specified frequency within a first specified time period, thecomputer receives at least the first specified frequency and the firstspecified time period.
 9. A computer program product for generating andmaintaining synthetic context events from a data structure comprising: acontext object database having a plurality of context objects; anon-contextual data object database having at least one non-contextualdata object; a synthetic context-based object database having aplurality of synthetic context-based objects associated with theplurality of context objects, the non-contextual data objects beinglinked to the synthetic context-based objects; a synthetic context eventdatabase comprising synthetic context events linked to the syntheticcontext-based objects; and a computer coupled to the data structure, thecomputer comprising at least one processor, one or more memories, one ormore computer readable storage media, the computer program productcomprising a computer readable storage medium having programinstructions embodied therewith, the program instructions executable bythe computer to perform a method comprising: searching, by the computer,the synthetic context-based objects and associated data of contextobjects for a pattern of context exhibited at a first specifiedfrequency within a first specified time period; combining, by thecomputer, the synthetic context-based objects and associated data ofcontext objects exhibiting the pattern of context exhibited at the firstspecified frequency within the first specified time period into asynthetic context event; and optimizing and maintaining, by thecomputer, the synthetic context event by searching the data structurefor additional synthetic context-based objects and associated dataexhibiting a same pattern of context at a second specified time perioddifferent than the first specified time period and adding the additionalsynthetic context-based objects and associated data to the syntheticcontext event.
 10. The computer program product of claim 9, whereinoptimizing and maintaining, by the computer, the synthetic context eventby searching the data structure for additional synthetic context-basedobjects and associated data exhibiting the same pattern of context atthe second specified time period further comprises searching, by thecomputer, for the same pattern of context exhibited at the firstspecified frequency.
 11. The computer program product of claim 9,wherein optimizing and maintaining, by the computer, the syntheticcontext event by searching the data structure for additional syntheticcontext-based objects and associated data exhibiting the same pattern ofcontext at the second specified time period further comprises searching,by the computer, for the same pattern of context exhibited at a secondspecified frequency, different than the first specified frequency. 12.The computer program product of claim 9, wherein the first specifiedfrequency is continuous.
 13. The computer program product of claim 9,wherein the first specified frequency is discontinuous.
 14. The computerprogram product of claim 9, wherein prior to searching, by the computer,a data structure of synthetic context-based objects and associated datafor a pattern of context exhibited at a first specified frequency withina first specified time period, receiving, by the computer, at least thefirst specified frequency and the first specified time period.
 15. Acomputer system for generating and maintaining synthetic context eventsfrom a data structure comprising: a context object database having aplurality of context objects; a non-contextual data object databasehaving at least one non-contextual data object; a syntheticcontext-based object database having a plurality of syntheticcontext-based objects associated with the plurality of context objects,the non-contextual data objects being linked to the syntheticcontext-based objects; a synthetic context event database comprisingsynthetic context events linked to the synthetic context-based objects;and the computer system comprising a computer coupled to a datastructure, the computer comprising at least one processor, one or morememories, one or more computer readable storage media having programinstructions executable by the computer to perform the programinstructions comprising: searching, by the computer, the syntheticcontext-based objects and associated data of context objects for apattern of context exhibited at a first specified frequency within afirst specified time period; combining, by the computer, the syntheticcontext-based objects and associated data of context objects exhibitingthe pattern of context exhibited at the first specified frequency withinthe first specified time period into a synthetic context event; andoptimizing and maintaining, by the computer, the synthetic context eventby searching the data structure for additional synthetic context-basedobjects and associated data exhibiting a same pattern of context at asecond specified time period different than the first specified timeperiod and adding the additional synthetic context-based objects andassociated data to the synthetic context event.
 16. The system of claim15, wherein optimizing and maintaining, by the computer, the syntheticcontext event by searching the data structure for additional syntheticcontext-based objects and associated data exhibiting the same pattern ofcontext at the second specified time period further comprises searching,by the computer, for the same pattern of context exhibited at the firstspecified frequency.
 17. The system of claim 15, wherein optimizing andmaintaining, by the computer, the synthetic context event by searchingthe data structure for additional synthetic context-based objects andassociated data exhibiting the same pattern of context at the secondspecified time period further comprises searching, by the computer, forthe same pattern of context exhibited at a second specified frequency,different than the first specified frequency.
 18. The system of claim15, wherein the first specified frequency is continuous.
 19. The systemof claim 15, wherein the first specified frequency is discontinuous. 20.The system of claim 15, wherein prior to searching, by the computer, adata structure of synthetic context-based objects and associated datafor a pattern of context exhibited at a first specified frequency withina first specified time period, receiving, by the computer, at least thefirst specified frequency and the first specified time period.